import logging
import logging.handlers
from pathlib import Path
import os
from datetime import datetime


def setup_logger(name='rss_reader'):
    # 创建日志目录
    log_dir = Path('logs')
    log_dir.mkdir(exist_ok=True)

    # 创建日志文件路径 (按日期)
    log_file = log_dir / f"{name}_{datetime.now().strftime('%Y%m%d')}.log"

    # 创建 logger
    logger = logging.getLogger(name)
    logger.setLevel(logging.DEBUG)

    # 防止重复添加handler
    if logger.hasHandlers():
        logger.handlers.clear()

    # 日志格式
    formatter = logging.Formatter(
        '%(asctime)s - %(filename)s - %(funcName)s - %(levelname)s - %(message)s [%(threadName)s]'
    )

    # 文件处理器 - 按大小轮转 (10MB一个文件，保留5个备份)
    file_handler = logging.handlers.RotatingFileHandler(
        log_file, maxBytes=10 * 1024 * 1024, backupCount=5, encoding='utf-8'
    )
    file_handler.setFormatter(formatter)
    file_handler.setLevel(logging.DEBUG)

    # 控制台处理器
    console_handler = logging.StreamHandler()
    console_handler.setFormatter(formatter)
    # console_handler.setLevel(logging.INFO)
    console_handler.setLevel(logging.DEBUG)

    # 添加处理器
    # logger.addHandler(file_handler)
    logger.addHandler(console_handler)

    return logger


# 全局日志对象
logger = setup_logger()